#pragma once

#include "Binding/BoundExpression.hpp"
#include "Binding/BoundNode.hpp"
#include "Binding/BoundStatement.hpp"
#include <vector>

class BoundWhileStatement : public BoundStatement
{
public:
    SharedBoundExpression Condition;
    SharedBoundStatement  BodyStatement;

public:
    BoundWhileStatement(SharedBoundExpression condition, SharedBoundStatement bodyStatement)
        : BoundStatement(BoundNodeKind::WhileStatement), Condition(condition), BodyStatement(bodyStatement)
    {
    }
    ~BoundWhileStatement() = default;

public:
    virtual std::vector<SharedBoundNode> GetChildren() { return {this->Condition, this->BodyStatement}; }
};
